package Controlador;

import java.util.Date;

import noteIt.notas.NoteitActivity;
import noteIt.notas.R;
import noteIt.notas.R.id;
import noteIt.notas.R.layout;

import Modelo.Nota;
import Modelo.NotaDAO;
import Utilidades.Utilidad;
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;

public class DialogoNuevo extends Dialog implements android.view.View.OnClickListener{

	Button botonCerrar; 			//			
	ToggleButton suiche;	// Componentes para mapear los contenidos en el XML
	EditText info;					//
	NotaDAO notaDAO = new NotaDAO(this.getContext());
	Nota seleccionada;
	char nueva;
	
	public DialogoNuevo(Context context) {
		//Construcción del cuadro de dialogo usando el XML 
		super(context);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.nota);
		//Se Instancian los componentes de la vista en el XML
		info = (EditText) this.findViewById(R.id.cuerpoCampo);
		botonCerrar = (Button)this.findViewById(R.id.botonCerrar);
		suiche = (ToggleButton) this.findViewById(R.id.botonBloquear);
		//Seteado de Listener's y Propiedades de los componentes
		botonCerrar.setOnClickListener(this);
		suiche.setOnClickListener(this);
		suiche.setChecked(true);
		nueva = '1';
	}
	
	public DialogoNuevo(Context context, String encabezadoNota) {
		//Construcción del cuadro de dialogo usando el XML 
		super(context);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.nota);
		//Se Instancian los componentes de la vista en el XML
		botonCerrar = (Button)this.findViewById(R.id.botonCerrar);
		suiche = (ToggleButton) this.findViewById(R.id.botonBloquear);
		info = (EditText) this.findViewById(R.id.cuerpoCampo);
		TextView  label = (TextView) this.findViewById(R.id.titulo);
		TextView  subText = (TextView) this.findViewById(R.id.fecha); 
		//Se crea una instancia de la Nota y otras variables auxiliares
		seleccionada = notaDAO.consultar(encabezadoNota);
		boolean estado = Utilidad.pasarEstadoBoolean(seleccionada.getEstado());
		//Seteado de Listener's y Propiedades de los componentes segun los atributos de la Nota
		label.setText(seleccionada.getEncabezado());
		subText.setText("Creado: "+Utilidad.obtenerFecha(seleccionada.getFechaRealizacion()));
		botonCerrar.setOnClickListener(this);
		info.setEnabled(estado);
		info.setText(seleccionada.getCuerpo());
		suiche.setOnClickListener(this);
		suiche.setChecked(estado);
		nueva = '0';
	}

	//Metodo que se debe sobreescribir al momento de implementar la clase OnClickListener
	@Override
	public void onClick(View v) {
		String texto = info.getText()+""; 		//Captura del texto contenido en el EditText
		if(v==botonCerrar){
			switch (nueva) {
			case '1':
				
				//Se crea la nota usando el constructor por parametros
				Nota n = new Nota(Utilidad.obtenerEncabezado(texto), 	//Artificio que compone el encabezado de la nota  
									texto, 				//Cuerpo de la nota
									new Date(), 		//Instancia Date para capturar la fecha actual
									Utilidad.pasarEstadoChar(suiche.isChecked())); //Artificio para el estado
				//manejador.insertar(n);					
				//Manejador.x++;
				notaDAO.crear(n);
				break;
			case '0':
				seleccionada.setEncabezado(Utilidad.obtenerEncabezado(texto));
				seleccionada.setCuerpo(info.getText()+"");
				seleccionada.setEstado(Utilidad.pasarEstadoChar(suiche.isChecked()));
				notaDAO.actualizar(seleccionada);
				break;
			}
			
			dismiss();								//Metodo que cierra el cuadro de dialogo
		} else if(v==suiche){				//Filtro el metodo verificando que el llamado provenga del suiche
			info.setEnabled(suiche.isChecked()); //Seteo de la propiedad enable del EditText segun la posicion del ToogleButton 
		}
	}
	
}
